//============[功能]:实现各个角色的功能=============
#ifndef FUNCTION_H
#define FUNCTION_H

#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>

#include "tlinklist.h"
#include "slinklist.h"
//#include "filedata.h" [注意]:此语句会造成以下数据结构被重复定义,遭成结构体无效[结构体形式未知]

//定义校长数据结构,便于和老师,学生一起分析
typedef struct 
{
	char password[20];
}*pLink;

//按任意键返回
bool Return_Key();
//3秒后自动返回
bool Return_Time();
//密码输入,校验
bool Check_Password(char r_password[20]);

//==========[开发人员:developer]==========

//密码校验
bool Check_Password_D();
//修改校长密码
bool Modify_Password_P(pLink PL);
// WMS 系统初始化:将教师和学生的数据链表清零，并重置校长密码
bool Init_System(pLink PL,tLink TL,sLink SL);

//==========[校长:principle]==========

//密码校验
bool Check_Password_P(pLink PL);
//单个输入教师信息：单个导入
bool Simple_Input_TD(tLink TL);
//查看,修改某个教师信息(修改教师状态，重置教师密码)
bool Check_Modify_TD(tLink TL);
//查看离职教师信息(展示id,name,phone)
bool Check_Quit_TD(tLink TL);
//重置自己密码
bool Reset_Password_P(pLink PL);

//==========[教师:teacher]==========

//密码校验:完成输入,校验,输出的功能......返回self_id
int Check_Password_T(tLink TL);
//批量上传学生信息(添加)
bool Batch_Input_SD(sLink SL);
//批量上传学生分数(添加)
bool Batch_Input_SS(sLink SL);
//查看,修改某个学生信息(修改学生状态,修改学生分数,重置学生密码)
bool Check_Modify_SD(sLink SL);
//查看退学学生信息(展示id,name,sex,idcard,phone)
bool Check_Quit_SD(sLink SL);
//查看学生成绩总评
bool Check_SSC(sLink SL);
//重置自己密码
bool Reset_Password_T(tLink TL,int id);

//==========[学生:student]==========

//密码校验:完成输入,校验,输出的功能......返回self_id
int Check_Password_S(sLink SL);
//查看自己的成绩
bool Check_Score_SP(sLink SL,int id);
//重置自己密码
bool Reset_Password_S(sLink SL,int id);

#endif //FUNCTION_H
